#ifndef GRAPH_H
#define GRAPH_H
#include<QString>
#include<QVector>
#include"date.h"
#include"city.h"
const int SIZE = 200;
struct tp
{
    int cost,id;
    date t;
    tp(int x,int y ,date z);
    friend bool operator <(const tp & a, const tp & b)
    {
        return a.cost > b.cost ;
    }
};
class Graph
{
private:

    QVector<int>dis;
public:
    Graph();
    QVector <city> citys;
    QVector<Tinfo *> findTinfo(QString bcity,QString lcity,bool type);//通过起始和类型寻找Tinfo
    int find(QString t);//通过城市名称找到该城市在数组的索引
    QVector<Tinfo *> solution1(bool type,QString b,QString l,int * ans,date * ans2);//核心算法1
    QVector<Tinfo *> solution2(bool type,QString b,QString l,date  * ans,int * ans2);//核心算法2
    bool addcity(QString city);//增加城市
    bool deletecity(QString city);//删除城市
    void change(QString oldcity,QString newcity);//改城市名
    bool addtfinfo(QString bcity,QString lcity,date bdate,date ldate,int money,bool type);//添加交通信息
    void deletetfinfo(Tinfo * t);//删除交通信息
    void editinfo(Tinfo * t,date newbdate,date newldate,int newmoney);//编辑交通信息

};

#endif // GRAPH_H
